import { onMounted, ref } from "vue";
import { findTopCategoryAPI } from "@/apis/category";
import { useRoute, onBeforeRouteUpdate } from "vue-router";

export const useCategory = () => {
    const categoryData = ref({})
    // 用于获取路由参数
    const route = useRoute()

    // 获取分类数据
    const getCategory = async (id = route.params.id) => {
        // 如何在setup中获取路由参数 useRoute() -> route 等价于this.$route
        const res = await findTopCategoryAPI(id)
        // console.log(res.result)
        categoryData.value = res.result
    }
    onMounted(() => {
        getCategory()
    })

    /**
     * 路由发生变化时，重新执行 获取分类数据 方法
     */
    onBeforeRouteUpdate((to) => {
        // console.log('路由发生变化了')
        // 存在问题：使用最新的路由参数，请求最新的分类数据
        // console.log(to)
        getCategory(to.params.id)
    })

    return {
        categoryData
    }
}


